package com.yeyi.ytest;

public class IntegerTest {
    
    /**
     * 与空值相加
     */
    static void t_addNull() {
        Integer i1 = 1;
        Integer i2 = 1000;
        Integer i3 = null;
//        Integer ii = i1+i3; // 与 null 相加报异常
        
//        if(i3==3) {			// 与 null 比较报异常
//        	System.out.println(i3==3);
//        }
    }
    public static void main(String[] args) {
        compare1();
//        parse();
//      t_addNull();
//        xor(10);
//        xor(-10);
    }
    
    public static void xor(int number) {
        //原始数二进制
        printInfo(number);
        printInfo(number ^ 0xaaaa);
        printInfo(number ^ number);
    }
    
    /**
     * http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html
     * @param number
     * @author: yeyi
     * @date: 2018年10月13日
     */
    public static void shift(int number) {
        //原始数二进制
        printInfo(number);
        //左移运算符，num << 1,相当于num乘以2
        printInfo(number << 1);
        //右移运算符，num >> 1,相当于num除以2
        printInfo(number >> 1);
        //无符号右移，忽略符号位，空位都以0补齐
        printInfo(number >>> 1);
    }
    
    /**
     * 输出一个int的二进制数
     * @param num
     */
    private static void printInfo(int num){
        System.out.println(Integer.toBinaryString(num)+"\t"+num);
    }

    // 对象强制转换
    public static void parse() {
        Object o = null;
        Object o2 = 1;
        Integer i = (Integer) o;
        Integer i2 = (Integer) o2;
        System.out.println(i);
        System.out.println(i2);
    }

    // 空对象对比
    public static void compare1() {
        Object o = null;
        Object o2 = 1;
        Object o4 = 256;
        Integer i = (Integer) o;
        Integer i2 = (Integer) o2;
        Integer i3 = 1;
        Integer i4 = 256;
        System.out.println(i==i2);
        System.out.println(i3==i2);
        System.out.println(i3==i);
        System.out.println(o4==i4);
    }
}